package controlador;

import java.awt.Dialog.ModalityType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JDialog;
import javax.swing.table.AbstractTableModel;

import modelo.Datos;
import modelo.Producto;
import vista.DlgSelecProducto;

public class ContSelecProducto {
	    private DlgSelecProducto dlg = null;
		private ArrayList<Producto> lista = null;
		private AbstractTableModel tmodelo = null;
		private Producto pr = null;
		
		public ContSelecProducto() {
		}
		
		public Producto mostrar(JDialog dialog) {
			dlg = new DlgSelecProducto(dialog, this);
			dlg.setLocationRelativeTo(null);
			
			lista = Datos.getInstancia().getProductos().productosGeneral();
			
			tmodelo = new AbstractTableModel() {
				private static final long serialVersionUID = 1L;

				@Override
				public int getColumnCount() {
					return 1;
				}

				@Override
				public String getColumnName(int col) {
					switch (col) {
					case 0: return "Producto";
					}
					return null;
				}

				@Override
				public int getRowCount() {
					return lista.size();
				}

				@Override
				public Object getValueAt(int row, int col) {
					Producto obj = lista.get(row); 
					switch (col) {
					case 0: return obj.getNombre();
					}
					return null;
				}
			};
			
			dlg.getTblProductos().setModel(tmodelo);
			
			dlg.getBtAceptar().addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					pr = lista.get(dlg.getTblProductos().getSelectedRow());
					dlg.dispose();
				}
			});

			dlg.getBtSalir().addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					dlg.dispose();
				}
			});

			dlg.setModalityType(ModalityType.APPLICATION_MODAL);
			dlg.setVisible(true);
			
			return pr;
		}
}
